package de.tum.in.elitese.wahlsys.persister.persistence_objects;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

import de.tum.in.elitese.wahlsys.persister.PersistenceObject;

/**
 * see Table ZWEITSTIMMEN
 * 
 * @author Christoph Frenzel
 * 
 */
public class Zweitstimmen extends PersistenceObject {
	private static final List<String> FIELD_NAMES = Collections
			.unmodifiableList(Arrays.asList(new String[] { "WAHLBEZIRK",
					"WAHLKREIS", "BUNDESLAND", "LANDESLISTE", "PARTEI",
					"ANZAHL" }));

	private static final String TABLE_NAME = "ZWEITSTIMMEN";

	private int fAnzahl;

	private Landesliste fLandesliste;

	private Wahlbezirk fWahlbezirk;

	public int getAnzahl() {
		return fAnzahl;
	}

	public Landesliste getLandesliste() {
		return fLandesliste;
	}

	@Override
	public List<String> getPersistanceStrings() {
		List<Object> values = new ArrayList<Object>(6);
		values.add(getWahlbezirk().getName());
		values.add(getWahlbezirk().getWahlkreis().getNummer());
		values.add(getWahlbezirk().getWahlkreis().getBundesland().getName());
		if (getLandesliste() != null) {
			values.add(getLandesliste().getId());
			values.add(getLandesliste().getPartei().getName());
		} else {
			values.add(null);
			values.add(null);
		}
		values.add(getAnzahl());

		List<String> result = new ArrayList<String>(1);
		result.add(createInsertString(TABLE_NAME, FIELD_NAMES, Collections
				.unmodifiableList(values)));
		return result;
	}

	public Wahlbezirk getWahlbezirk() {
		return fWahlbezirk;
	}

	public void setAnzahl(int anzahl) {
		fAnzahl = anzahl;
	}

	public void setLandesliste(Landesliste landesliste) {
		fLandesliste = landesliste;
	}

	public void setWahlbezirk(Wahlbezirk wahlbezirk) {
		fWahlbezirk = wahlbezirk;
	}

}
